With the multitude of operating systems and versions thereof, developers have created software that provides virtual machines. A virtual machine is a software-created environment that may appear, to the operating system and applications that execute therein, to have most or all the elements associated with an actual PC. The software-created environment may be so complete that the operating system and applications that execute on a virtual machine may not be able to determine that they are executing in a virtual environment.
Providing virtual machines is useful for many reasons including debugging and supporting applications designed to execute on multiple versions of one or more operating systems, having access on a single machine to applications that are only available for different operating systems, and so forth. To execute multiple operating systems on one actual computer, a user may load a primary operating system on the computer, load software to create one or more virtual machines, and then load one or more other operating systems that execute in the one or more virtual machines. This allows, for example, an Apple® (or another) operating system to provide a virtual machine to host a Microsoft® operating system, a UNIX® operating system, a LINUX® operating system, another Apple® operating system, or some other operating system.
Virtual machines may be associated with volumes on which they store and access data. What is needed is a method and system for backing up and restoring data to virtual machines, particularly when they are used as servers.